package com.imooc.service.center;

import com.imooc.pojo.Orders;
import com.imooc.pojo.vo.OrderStatusCountsVO;
import com.imooc.utils.PagedGridResult;

public interface MyOrdersService {

    /**
     * 分页查询我的订单
     *
     * @param userId
     * @param orderStatus
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult queryMyOrders(String userId, Integer orderStatus, Integer page, Integer pageSize);

    /**
     * 订单状态-->商家发货
     *
     * @param orderId
     */

    public void updateDeliverOrderStatus(String orderId);

    /**
     * 前端点击确认收货按钮,调用后端验证userId和订单id是否有关联,防止恶意请求
     */
    public Orders queryMyOrder(String userId, String orderId);

    /**
     * 更新订单状态
     * 因为订单状态表是没有关联用户id的,所以我们不需要传入用户id多此一举
     *
     * @param orderId
     * @return
     */
    public boolean updateReceiveOrderStatus(String orderId);

    /**
     * 删除订单,这是一个逻辑删除,直接操作订单表,就会多一个userId
     *
     * @param userId
     * @param orderId
     * @return
     */
    public boolean deleteOrder(String userId, String orderId);

    /**
     * 查询用户订单数
     *
     * @param userId
     * @return
     */
    public OrderStatusCountsVO getOrderStatusCounts(String userId);

    /**
     * 获得分页的订单动向
     *
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult getOrdersTrend(String userId, Integer page, Integer pageSize);
}
